package com.cn.bulu.dao;

import java.util.List;
import java.util.Map;

import org.springframework.transaction.annotation.Transactional;

import com.cn.bulu.pojo.Customer;
import com.cn.bulu.pojo.Customer_address;
import com.cn.bulu.pojo.Dealer;
import com.cn.bulu.pojo.Goods;
import com.cn.bulu.pojo.Indent;
import com.cn.bulu.pojo.Sample;
@Transactional
public interface DealerDao {
	//注册
	int insertDealer(Map<String, Object> map);
	//判断是否被注册
	int getDealerNumber(String phone);
	//得到经销商id
	int getDealerId(Map<String, Object> map);
	//得到经销商审核状态
	Integer selectStasusS(Map<String, Object> map);
	//完善经销商数据
	void updateDealerData(Map<String, Object> map);
	//经销商图片上传
	void insertDealerImg(Map<String, Object> map);
	//通过手机号和密码判断该账户是否存在
	Map<String, Object> selectDealer(Map<String, Object> map);
	//修改密码
	void updateDealerPassword(Map<String, Object> map);
	//修改经销商的图片
	void updateDealerImgs(Map<String, Object> map);
	//得到所有图片的id
	List<Integer> getPictureId(int dealerId);
	//删除多余的图片地址
	void deletePicture(Integer integer);
	//得到经销商类型
	Integer getDealerType(Map<String, Object> map);
	//得到经销商本身的等级和利润增加量
	Map<String, Object> selectProfits(Integer dealerId);
	//得到商品关于利润的一些信息
	List<Sample> selectGoodsProfit(Integer type);
	//查询子账号
	List<Map<String, Object>> selectChild(Integer dealerId);
	//停用子账号
	int chageChild(Integer customerId);
	//修改子账号密码
	int chageChildPassword(Map<String, Object> map);
	//申请子账号
	int applyChild(Map<String, Object> map);
	//查询可提现金额
	Dealer selectWallet(Integer dealerId);
	//查询经销商级别
	Integer selectType(Integer dealerId);
	//查询经销商本身推荐的客户数
	Integer selectCustomerN(Integer dealerId);
	//查询经销商子账号推荐的客户数
	Integer selectChildN(Integer dealerId);
	//查询一级经销商的二级经销商数量
	Integer selectSecond(Integer dealerId);
	//查询二级经销商的任务
	Map<String, Object> selectTask(Integer dealerId);
	//查询二级的一些信息
	List<Map<String, Object>> selectErmessage(Map<String, Object> map);
	//查询经销商自身推荐的顾客ID
	List<Integer> selectReferrerP(String phone);
	//查询经销商的子账号ID
	List<Integer> selectChildD(Integer dealerId);
	//查询经销商子账号推荐的顾客ID
	List<Integer> selectChildR(Map<String, Object> map);
	//查询自营未完成
	List<Map<String, Object>> selectNOrder(Map<String, Object> map);
	//根据id查询手机号
	String selectPhone(Integer dealerId);
	//查询已完成
	List<Map<String, Object>> YesComplete(Map<String, Object> map);
	//查询已完成某一年
	List<Map<String, Object>> YesComplete2(Map<String, Object> map);
	//查询已完成某一年某一月
	List<Map<String, Object>> YesComplete3(Map<String, Object> map);
	//查询一级对应的二级经销商
	List<Map<String, Object>> NoComplete2(String phone);
	//查询订单中对应的商品图片 -----------------------------多个地方可使用
	List<Map<String, Object>> selectGoodsImg(Integer orderId);
	//查询每个订单中一级的每个商品利润和
	Double selectGoodsProfitL(Map<String, Object> map);
	//查询每个订单中一级的每个商品绑定配件的利润和
	Double selectGoodsPeiProfitL(Map<String, Object> map);
	//查询一级对二级获得的利润每个商品利润和
	Double selectYiduier1(Map<String, Object> map);
	//查询每个订单中一级的每个商品绑定配件的利润和一级对二级
	Double selectYiduier2(Map<String, Object> map);
	//查询一级对二级获得的利润每个商品利润
	Double selectGoodsYiduier1(Map<String, Object> map);
	//查询每个订单中一级的每个商品绑定配件的利润和一级对二级
	Double selectGoodsYiduier2(Map<String, Object> map);
	//查询提现记录
	List<Map<String, Object>> selectRecord(Integer dealerId);
	//添加订单地址
	int insertAddress(Customer_address customer_address);
	//添加测量订单
	int insertCIndent(Map<String, Object> map);
	//添加安装订单
	int insertAIndent(Indent indent);
	//添加商品
	int insertGoods(Goods goods);
	//插入商品和indent的关系
	int insertGoods_Indent(Map<String, Object> map);
	//查询某一年的任务
	Double selectTargetMoney(Map<String, Object> map);
	//查询某一年的完成营业额
	Double selectSumPrice(Map<String, Object> map);
	//查询某个市的测量安装费用
	Map<String, Object> selectTerritory(String city);
	//查询某个子账号姓名
	String selectName(Integer customerId);
	//查询单个子账号推荐的顾客Id
	List<Integer> selectSingleChild(Integer customerId);
	//查询子账号信息
	Customer getCustomerById(Object object);
	//根据商品号查询商品利润
	Double selectOneGoods(Map<String, Object> map);
	//根据配件号查询商品配件利润
	Double selectPeiProfitL(Map<String, Object> map);
	//查询个人信息
	Map<String, Object> selectDealer2(Integer dealerId);
	//查询经销商店铺图片
	List<String> selectDealerImg(Integer dealerId);
	//查询orders订单的测量订单
	Double selectCeliang(Integer orderId);
	//查询orders订单的安装订单
	Double selectAnzhuang(Integer orderId);
	//查询是否免安装测量
	Map<String, Object> selectMian(Integer orderId);
	//查询特价商品价格
	Double selectTejia(Integer orderId);
	//查询正价商品价格
	Double selectzhengjia(Integer orderId);
	//查询优惠商品价格
	Double selectyouhui(Integer orderId);
	//查询优惠分摊百分比
	Double selectyouhuifen(Integer type);
	//查询安装测量分摊百分比
	Double selectceliangfen(Integer type);
	//查询订单中的优惠内容
	String selectyouhuibody(Integer orderId);
	//查询订单中的优惠测量安装内容
	String selectceanbody(Integer orderId);
	//根据商品号查询商品的一些信息
	Map<String, Object> selectXGoods(Integer goodsId);
	//根据商品号查询用量
	List<Map<String, Object>> selectYongliang(Integer goodsId);
	//根据型号查询出出售价
	Double selectDanjia(String serialnumber);
	//根据商品号查询相关配件
	List<Map<String, Object>> selectPeijian(Integer goodsId);
	//根据订单号查询其中商品数
	Integer selectOrderGoods(Object object);
	//根据订单号查询一评价商品数
	Integer selectOrderyiping(Object object);
	//查询广告
	List<String> selectGuanggao();
}
